[Mac/Linux] Command Line指令
本篇紀錄Mac常用的指令(會持續更新)
基本指令
基本查詢
man
指令加上要查詢的指令來閱讀線上手冊,透過線上手冊可以查詢相關指令或是函數的名稱,如查詢ls
的用法:
1 |
|
按下鍵盤的q
鍵即可離開。
查詢隱藏的檔案
-a
可配合其他指令來查詢隱藏的檔案,如:
1 |
|
上圖可看出,我電腦的家(home)目錄底下有許多隱藏的檔案
建立空檔案
執行touch
並指定檔案名稱,當指定的檔案不存在時,touch
就會自動建立一個空檔案,並將檔案的時間設定為目前的時間touch
資料補齊
如果文件名稱過長,或是指令只記得一部分的情形,按下鍵盤上的Tab鍵,會看到相似檔名的候選名單。而如果只有一個,它就會自動全部補上。
資料夾
移除資料夾
後面加個 -r
的指令,就是指要移除資料夾以及裡面全部內容,-r
為--recurise
的縮寫。
1 |
|
複製資料夾
1 |
|
範例
假設桌面有一新建的料夾test,內含test.txt
的檔案
如果要複製test資料夾,並命名新資料夾為test_folder,執行
1 |
|
上面可看出成功複製新的名為test_folder的資料夾。
若改成存在兩個資料夾,分別為test、test_folder,將test_folder複製到test資料夾內,可以執行
1 |
|
上圖可發現成功將test_folder複製到test資料夾!
萬用字元
萬用字元的好處是可以節省的時間,其中*
代表”0個到無窮多個”任意字元,利用*
搭配bash其他常用指令,處理資料就更方便快速!更多萬用字元的說明查閱鳥哥的文章。
*
常用於刪除大量同個副檔名的檔案,如某個專案資料夾裡的.log
檔,就可以使用*.log
一次刪除所有log檔。
萬用字元
*
在做檔案或資料夾刪除時要特別小心,有時會誤刪部分相同的檔案及資料夾。
誤刪的情況
目前桌面上的資料夾有test、test1_folder、test_folder三個資料夾,以及test.txt
、test1.txt
兩個.txt
檔案
目標要刪除三個資料夾,如果採萬用字元的做法會是
1 |
|
執行上述命令會連同test.txt
、test1.txt
兩個.txt
檔案刪除!
所以使用萬用字元做刪除要特別小心!
移除文件
1 |
|
拷貝檔案
1 |
|
如: 拷貝 hi.txt 到 hello.txt
1 |
|
檔案的移動與更名
更名
1 |
|
範例
更名前:
更名後: 將 hi.txt 改為 hello.txt
1 |
|
移動
1 |
|
建立目錄
1 |
|
檢視當前目錄的文件
1 |
|
顯示目錄下檔案
1 |
|
上圖的訊息包含:權限、檔案大小、上次修改時間等
退回上一層
1 |
|
回到根目錄
1 |
|
開啟根目錄資料夾
1 |
|
開啟當下電腦使用者根目錄
1 |
|
開啟當前目錄
1 |
|
顯示當前使用者目錄名稱
1 |
|
顯示當前目錄的路徑
1 |
|
切換路徑
1 |
|
切換至根目錄
1 |
|
根目錄V.S.家(home)目錄
Mac 打開Terminal預設路徑會在家目錄下,可以看到~
的符號
若想知道當前目錄的路徑,可輸入pwd
如果是要切換至根目錄,可以輸入指令: cd /
,切換路徑至根目錄夾下。
輸入ls
可查看當前目錄下所有的檔案
如果要回到家目錄,輸入指令cd ~
觀念釐清
波浪線~
等於電腦的名字,也就是說,cd ~
與cd /Users/tsungyuchen
兩者相等
絕對路徑 V.S. 相對路徑
絕對路徑
延續剛才上一個問題,cd /Users/tsungyuchen
路徑為斜線開頭,表示從根目錄開始。
相對路徑
從目前所在目錄開始算起
進階指令
找指定的檔案
find
指令可在執行指令的目錄下做搜尋,找指定的檔案,並回傳路徑。
在目前的目錄底下
不分英文大小寫
1 |
|
區分英文大小寫
1 |
|
在 /home 目錄底下,找尋檔案
不分英文大小寫
1 |
|
區分英文大小寫
1 |
|
快速查看某個檔案的內容
1 |
|
其實
cat
指令原始功能是將檔案合併,再顯示合併後的檔案,如果cat
後方只接一個檔案,則直接顯示該檔案內容。
查詢檔案內的文字
不用打開文件,就能查詢檔案內的文字。
1 |
|
如:
text檔內有”hello”的文字內容
執行指令
1 |
|
不區分大小寫的模式
搜尋字詞前面加前綴詞 -i
1 |
|
apt-get
apt-get
是專門給 ubuntu, debian 等 Linux 系統使用的套件下載軟體
ssh
常用來遠端連線
寫入
1 |
|
其中>
寫入時會覆蓋原本檔案的內容重新寫入。
範例(重新覆蓋):
假設今天桌面上有個test.txt
檔,執行寫入方法:
1 |
|
查看被寫入的檔案內容:
1 |
|
覆蓋剛剛寫入的檔案
1 |
|
查看被寫入的檔案內容:
1 |
|
若要不覆蓋原本的檔案,將上個範例的>
改為>>
即可。
範例(不覆蓋):
寫入
1 |
|
echo
輸出的內容會斷行,若不想斷行可以改執行printf
查看
1 |
|
合併檔案
可以透過cat
指令將檔案進行合併顯示
輸出合併檔案(不影響原始檔案)
如果要將兩個內容合併輸出,可使用cat 檔案1 檔案2
的指令
如:
建立一個名為cat.txt
的檔案與剛剛的test.txt
進行合併輸出。
1 |
|
1 |
|
輸出合併結果
cat
只有單純輸出合併結果,並不影響原始檔案內容
將合併檔案後的檔案輸出成新檔案
1 |
|
合併目標檔案,並產出合併過後的新檔案。如:
1 |
|
上圖例子產出test.txt
和cat.txt
合併過後的新檔案,名為cat2.txt
。
移動檔案
將檔案進行移動。
1 |
|
範例
假設今天桌面有個test_folder
目標資料夾,要將剛剛建立的test.txt
檔移至目標資料夾。
1 |
|
補充
Mac如何清除系統上被佔用的Port?
查詢 PID
如: 查詢 Port:3000 狀態
1 |
|
清除 PID
查詢PID後,找到佔用該port對應的PID
1 |
|
如對應PID為32952,則:
1 |
|